package com.xzqwjw.taskmanager.dao;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.leaderinfo.model.CategoryJobLevel;

import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

public class JobLevelCategoryDao implements com.leaderinfo.service.OperateDatabaseService {

	private SQLiteDatabase objDB;
	private String strDBFile = "";

	public JobLevelCategoryDao(String strDBFile) {
		this.strDBFile = strDBFile;
	}

	@Override
	public Map<String, Object> getRecordByAID(int intAID) {
		CategoryJobLevel objJobLevelCategory = null;
		Map<String, Object> mapInfo = null;

		objDB = SQLiteDatabase.openOrCreateDatabase(strDBFile, null);

		String strSQL = "SELECT * FROM category_job_level WHERE aid=?";
		String[] aryArgs = { String.valueOf(intAID) };
		Cursor objCursor = objDB.rawQuery(strSQL, aryArgs);
		if (objCursor.moveToFirst()) {
			objJobLevelCategory = new CategoryJobLevel();
			getInfo(objCursor, objJobLevelCategory);
			mapInfo = new HashMap<String, Object>();
			mapInfo.put("JobLevelCategory", objJobLevelCategory);
		}
		objCursor.close();
		objDB.close();
		return mapInfo;
	}

	public int getAIDByJobLevel(String strJobLevel) {
		CategoryJobLevel objJobLevelCategory = null;
		int intAID = 0;

		objDB = SQLiteDatabase.openOrCreateDatabase(strDBFile, null);

		String strSQL = "SELECT * FROM category_job_level WHERE job_level=?";
		String[] aryArgs = { String.valueOf(strJobLevel) };

		Cursor objCursor = objDB.rawQuery(strSQL, aryArgs);
		if (objCursor.moveToFirst()) {
			objJobLevelCategory = new CategoryJobLevel();
			getInfo(objCursor, objJobLevelCategory);
			intAID = objJobLevelCategory.AID;
		}
		objCursor.close();
		objDB.close();
		return intAID;
	}

	public String getJobLevelCategoryByID(int intAID) {
		CategoryJobLevel objJobLevelCategory = null;
		Map<String, Object> mapInfo = getRecordByAID(intAID);
		if (mapInfo != null) {
			objJobLevelCategory = (CategoryJobLevel) mapInfo
					.get("JobLevelCategory");
			return objJobLevelCategory.JobLevelCategory;
		} else {
			return "";
		}
	}

	@Override
	public Map<String, Object> getRecordByBasicID(int intAID) {
		return null;
	}

	@Override
	public List<Map<String, Object>> getRecordsByBasicID(int intAID) {
		return null;
	}

	@Override
	public List<Map<String, Object>> getAllRecords() {
		List<Map<String, Object>> listInfo = new ArrayList<Map<String, Object>>();
		Map<String, Object> mapInfo = null;
		CategoryJobLevel objJobLevelCategory = null;

		objDB = SQLiteDatabase.openOrCreateDatabase(strDBFile, null);

		String strSQL = "SELECT * FROM category_job_level";
		Cursor objCursor = objDB.rawQuery(strSQL, null);
		if (objCursor.getCount() > 0) {
			while (objCursor.moveToNext()) {
				mapInfo = new HashMap<String, Object>();
				objJobLevelCategory = new CategoryJobLevel();
				getInfo(objCursor, objJobLevelCategory);
				mapInfo.put("JobLevelCategory", objJobLevelCategory);
				listInfo.add(mapInfo);
			}
		}
		objCursor.close();
		objDB.close();
		return listInfo;
	}

	private void getInfo(Cursor objCursor, CategoryJobLevel objJobLevelCategory) {
		objJobLevelCategory.AID = objCursor.getInt(objCursor
				.getColumnIndex("aid"));
		objJobLevelCategory.JobLevelCategory = objCursor.getString(objCursor
				.getColumnIndex("job_level"));
	}

	@Override
	public List<Map<String, Object>> getRecordsByWhere(String strWhere) {
		return null;
	}

}
